package com.xbongbong.pro.statistic.result.pojo;

import com.alibaba.fastjson.JSONArray;
import com.xbongbong.pro.statistic.ChartDrillItemPojo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 某一张图的总钻取信息pojo，包含总筛选条件、图内字段钻取信息map
 * @author zcp
 * @version v1.0
 * @since v1.0
 */
@Getter
@Setter
@ToString
@AllArgsConstructor
public class DrillResultChartInfoPojo implements Serializable {
    private static final long serialVersionUID = 7266103719666106461L;
    /**
     * 钻取时封装的条件 -- 通过 drillCondition 处理后转化 及 其他相关处理得到（比如特殊字段下钻时，要把子部门条件转换后塞入）
     */
    private JSONArray filter;

    /**
     * key：钻取图表的哪个字段（分类、系列、行列） - 每个图表字段只有一个会触发钻取 @link DrillFieldEnum
     * value：钻取方向（上卷、下钻）、钻取图表字段（分类、系列、行列）、当前钻取字段及其所属层级attrList等信息pojo
     */
    private Map<String, DrillResultChartFieldInfoPojo> chartFieldInfoMap;

    /**
     * 该图表的钻取层级信息（所有层级）
     */
    private List<ChartDrillItemPojo> drillList;

    public DrillResultChartInfoPojo(List<ChartDrillItemPojo> drillList) {
        this.drillList = drillList;
    }

    public DrillResultChartInfoPojo() {

    }
}
